home *** CD-ROM | disk | FTP | other *** search
/ MacHack 2001 / MacHack 2001.toast / pc / The Hacks / asciishopsource / asciiShop / mainFrame.java.txt < prev    next >
Encoding:
Text File  |  2001-06-23  |  8.4 KB  |  284 lines

  1. /** 
  2.  * mainFrame.java
  3.  *
  4.  * Title:            ASCII Shop
  5.  * Description:        The goal of this program is to provide many functionalities of photoshop, with ASCII art.
  6.  * @author            Expotech
  7.  * @version            
  8.  */
  9.  
  10. package asciiShop;
  11.  
  12. import java.awt.*;
  13. import java.awt.event.*;
  14. import java.io.*;
  15.  
  16. public class mainFrame extends java.awt.Frame {
  17.  
  18. char[][] artBuffer2;
  19. int useLength, length1, length2;
  20. int globalCount = 0;
  21. PrintWriter writeToFile;
  22. String bigString;
  23. int i, j, k;
  24. int countForOpenFile, countForOpenFileSave;
  25. FileDialog newFile;
  26. String pathToFile;
  27. String file;
  28. BufferedReader openFile;
  29. String[] artBuffer, [][] layerBuffer;
  30.  
  31. // IMPORTANT: Source code between BEGIN/END comment pair will be regenerated
  32. // every time the form is saved. All manual changes will be overwritten.
  33. // BEGIN GENERATED CODE
  34.     // member declarations
  35.     java.awt.TextArea fileBuffer = new java.awt.TextArea();
  36.     java.awt.List layers = new java.awt.List();
  37.     java.awt.MenuBar menuBar1 = new java.awt.MenuBar();
  38.     java.awt.Menu menuFile = new java.awt.Menu();
  39.     java.awt.MenuItem menuFileOpen = new java.awt.MenuItem();
  40.     java.awt.MenuItem menuFileWriteOut = new java.awt.MenuItem();
  41.     java.awt.MenuItem menuFileQuit = new java.awt.MenuItem();
  42.     java.awt.Menu menuLayers = new java.awt.Menu();
  43.     java.awt.MenuItem menuLayersAddLayer = new java.awt.MenuItem();
  44.     java.awt.MenuItem menuLayersRemoveLayer = new java.awt.MenuItem();
  45.     java.awt.MenuItem menuLayersRedrawLayers = new java.awt.MenuItem();
  46. // END GENERATED CODE
  47.  
  48.     public mainFrame() {
  49.     }
  50.  
  51.     public void initComponents() throws Exception {
  52. // IMPORTANT: Source code between BEGIN/END comment pair will be regenerated
  53. // every time the form is saved. All manual changes will be overwritten.
  54. // BEGIN GENERATED CODE
  55.         // the following code sets the frame's initial state
  56.  
  57.         fileBuffer.setLocation(new java.awt.Point(60, 70));
  58.         fileBuffer.setVisible(true);
  59.         fileBuffer.setSize(new java.awt.Dimension(480, 360));
  60.  
  61.         layers.setLocation(new java.awt.Point(570, 270));
  62.         layers.setVisible(true);
  63.         layers.setSize(new java.awt.Dimension(130, 160));
  64.  
  65.         menuBar1.add(menuFile);
  66.         menuBar1.add(menuLayers);
  67.  
  68.         menuFile.setLabel("File");
  69.         menuFile.add(menuFileOpen);
  70.         menuFile.add(menuFileWriteOut);
  71.         menuFile.add(menuFileQuit);
  72.  
  73.         menuFileOpen.setLabel("Open");
  74.  
  75.         menuFileWriteOut.setLabel("Write Out");
  76.  
  77.         menuFileQuit.setLabel("Quit");
  78.  
  79.         menuLayers.setLabel("Layers");
  80.         menuLayers.add(menuLayersAddLayer);
  81.         menuLayers.add(menuLayersRemoveLayer);
  82.         menuLayers.add(menuLayersRedrawLayers);
  83.  
  84.         menuLayersAddLayer.setLabel("Add Layer");
  85.  
  86.         menuLayersRemoveLayer.setLabel("Remove Layer");
  87.  
  88.         menuLayersRedrawLayers.setLabel("Redraw Layers");
  89.  
  90.         setLocation(new java.awt.Point(5, 40));
  91.         setTitle("asciiShop.mainFrame");
  92.         setLayout(null);
  93.         setMenuBar(menuBar1);
  94.         setSize(new java.awt.Dimension(736, 520));
  95.         add(fileBuffer);
  96.         add(layers);
  97.  
  98.  
  99.         fileBuffer.addTextListener(new java.awt.event.TextListener() {
  100.             public void textValueChanged(java.awt.event.TextEvent e) {
  101.                 fileBufferTextValueChanged(e);
  102.             }
  103.         });
  104.         layers.addItemListener(new java.awt.event.ItemListener() {
  105.             public void itemStateChanged(java.awt.event.ItemEvent e) {
  106.                 layersItemStateChanged(e);
  107.             }
  108.         });
  109.         menuFileOpen.addActionListener(new java.awt.event.ActionListener() {
  110.             public void actionPerformed(java.awt.event.ActionEvent e) {
  111.                 menuFileOpenActionPerformed(e);
  112.             }
  113.         });
  114.         menuFileWriteOut.addActionListener(new java.awt.event.ActionListener() {
  115.             public void actionPerformed(java.awt.event.ActionEvent e) {
  116.                 menuFileWriteOutActionPerformed(e);
  117.             }
  118.         });
  119.         menuLayersAddLayer.addActionListener(new java.awt.event.ActionListener() {
  120.             public void actionPerformed(java.awt.event.ActionEvent e) {
  121.                 menuLayersAddLayerActionPerformed(e);
  122.             }
  123.         });
  124.         addWindowListener(new java.awt.event.WindowAdapter() {
  125.             public void windowClosing(java.awt.event.WindowEvent e) {
  126.                 thisWindowClosing(e);
  127.             }
  128.         });
  129.  
  130. // END GENERATED CODE
  131.     }
  132.   
  133.       private boolean mShown = false;
  134.       
  135.     public void addNotify() {
  136.         super.addNotify();
  137.         
  138.         if (mShown)
  139.             return;
  140.             
  141.         // move components to account for insets
  142.         Insets insets = getInsets();
  143.         Component[] components = getComponents();
  144.         for (int i = 0; i < components.length; i++) {
  145.             Point location = components[i].getLocation();
  146.             location.move(location.x, location.y + insets.top);
  147.             components[i].setLocation(location);
  148.         }
  149.  
  150.         mShown = true;
  151.     }
  152.  
  153.     // Close the window when the close box is clicked
  154.     void thisWindowClosing(java.awt.event.WindowEvent e) {
  155.         setVisible(false);
  156.         dispose();
  157.         System.exit(0);
  158.     }
  159.     
  160.     public void list1ItemStateChanged(java.awt.event.ItemEvent e) {
  161.     }
  162.     
  163.     public void layersItemStateChanged(java.awt.event.ItemEvent e) {
  164.     }
  165.     
  166.     public void fileBufferTextValueChanged(java.awt.event.TextEvent e) {
  167.     }
  168.     
  169.     public void menuFileOpenActionPerformed(java.awt.event.ActionEvent e) {
  170.         bigString = new String("");
  171.         countForOpenFile = 0; // To get the number of lines to use with artBuffer
  172.         newFile = new FileDialog(this, "Open File", FileDialog.LOAD); // Opens and open file dialog box
  173.         newFile.setVisible(true);
  174.         pathToFile = newFile.getDirectory();
  175.         file = newFile.getFile();
  176.         artBuffer = new String[200];
  177.         try {
  178.             System.out.println(pathToFile + file);
  179.             openFile = new BufferedReader(new FileReader(pathToFile + file));
  180.         } catch(FileNotFoundException badStuff) {
  181.             System.out.println("The file could not be found... DAMN MICROSOFT!!!");
  182.         }
  183.             try {
  184.                 while( (artBuffer[countForOpenFile] = openFile.readLine()).equals("***end***") == false)
  185.                 {
  186.                         countForOpenFile++;
  187.                 }
  188.             } catch(IOException badStuff) {
  189.                 System.out.println("HOW THE HELL DiD YOU GET THIS ERROR!?");
  190.             }
  191.         System.out.println("How many lines in the art: " + countForOpenFile);
  192.         for(i = 0; i < countForOpenFile; i++) {
  193.             bigString = bigString + artBuffer[i] + "\n";
  194.         }
  195.         fileBuffer.setText(bigString);
  196.         countForOpenFileSave = countForOpenFile;
  197.     }
  198.     
  199.     public void menuFileWriteOutActionPerformed(java.awt.event.ActionEvent e) {
  200.         newFile = new FileDialog(this, "Save File", FileDialog.SAVE);
  201.         newFile.setVisible(true);
  202.         pathToFile = newFile.getDirectory();
  203.         file = newFile.getFile();
  204.         try {
  205.         writeToFile = new PrintWriter(new FileWriter(pathToFile + file), true);
  206.         System.out.println("Wrote to file: " + pathToFile + file);
  207.         } catch(IOException badStuff) {
  208.             System.out.println("GODDAMN HOW THE HELL DID YOU MANAGE TO GET THIS ERROR!?");
  209.         }
  210.         bigString = fileBuffer.getText();
  211.         writeToFile.println(bigString + "\n***end***");
  212.         System.out.println("Wrote out to file: " + pathToFile + file + "\n" + bigString + "***end***");
  213.         return;
  214.     }
  215.     
  216.     public void menuLayersAddLayerActionPerformed(java.awt.event.ActionEvent e) {
  217.         {
  218.             String [][] temp;
  219.             
  220.             temp = layerBuffer;
  221.             layerBuffer = new String[globalCount+1][200];
  222.             for(int i=0; i < globalCount; i++)
  223.                 layerBuffer[i] = temp[i];
  224.         }
  225.         countForOpenFile = 0; // To get the number of lines to use with artBuffer
  226.         newFile = new FileDialog(this, "Add Layer", FileDialog.LOAD); // Opens and open file dialog box
  227.         newFile.setVisible(true);
  228.         pathToFile = newFile.getDirectory();
  229.         file = newFile.getFile();
  230.         layerBuffer[globalCount] = new String[200];
  231.             System.out.println("Trying to apply layer: " + pathToFile + file);
  232.             try {
  233.                 openFile = new BufferedReader(new FileReader(pathToFile + file));
  234.             } catch(IOException badStuff) {
  235.                 System.out.println("HOW THE HELL DID YOU GET THIS ERROR!? - 3");
  236.             }
  237.             try {
  238.                 while( (layerBuffer[globalCount][countForOpenFile] = openFile.readLine()).equals("***end***") == false)
  239.                 {
  240.                         countForOpenFile++;
  241.                 }
  242.             } catch(IOException badStuff) {
  243.                 System.out.println("HOW THE HELL DID YOU GET THIS ERROR!? -2");
  244.             }
  245.             length1 = artBuffer[0].length();
  246.             length2 = layerBuffer[globalCount][0].length();
  247.             if(length1 < length2) {
  248.                 useLength = length2;
  249.             }
  250.             else {
  251.                 useLength = length1;
  252.             }
  253.             
  254.             artBuffer2 = new char[200][200];
  255.             
  256.             for(i = 0; i < countForOpenFileSave; i++) {
  257.                 for(k = 0; k < useLength; k++) {
  258.                     artBuffer2[i][k] = artBuffer[i].charAt(k);
  259.                 }
  260.                 for(j = 0; j < useLength; j++) {
  261.                     if(layerBuffer[i][j].charAt(j) != ' ') {
  262.                         artBuffer2[i][j] = layerBuffer[i][j].charAt(j);
  263.                     }
  264.                     else {
  265.                         artBuffer2[i][j] = ' ';
  266.                     }
  267.                 }    
  268.             }
  269.             for(i = 0; i < countForOpenFileSave; i++) {
  270.                 for(k = 0; k < useLength; k++) {
  271.                     System.out.println(artBuffer2[i][k]);
  272.                 }
  273.             }
  274.             for(i = 0; i < countForOpenFileSave; i++) {
  275.                 System.out.println(artBuffer[i]);
  276.             }
  277.             globalCount++;
  278.     }
  279.     
  280.     /*layerBuffer = new String[globalCount][];
  281.     layerBuffer[2] = new String[2]{"blah","soo"};
  282.     system.out.println(layerBuffer[2][1])*/
  283. }
  284.